package com.yuncool.mq;

import com.yuncool.constants.RabbitQueue;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.core.Queue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

/**
 * @author ：chengccn
 * @date ：Created in 2019/8/24 23:07
 * @description：mq配置
 */
@Component
public class RabbitMQAutoConfiguration {
    @Autowired
    private AmqpTemplate amqpTemplate;

    /**
     * 项目启动的时候如果没有queue则创建一个日志队列 LOG_QUEUE
     *
     * @return Queue队列
     */
    @Bean
    public Queue logQueue() {
        return new Queue(RabbitQueue.LOG_QUEUE);
    }

    /**
     * 项目启动的时候如果没有queue则创建一个邮件队列 MAIL_QUEUE
     *
     * @return Queue队列
     */
    @Bean
    public Queue mailQueue() {
        return new Queue(RabbitQueue.MAIL_QUEUE);
    }

    /**
     * 项目启动的时候如果没有queue则创建一个邮件Code队列 MAIL_QUEUE_CODE
     *
     * @return Queue队列
     */
    @Bean
    public Queue mailCodeQueue() {
        return new Queue(RabbitQueue.MAIL_QUEUE_CODE);
    }

    /**
     * 项目启动的时候如果没有queue则创建一个短信Code队列 SMS_CODE
     *
     * @return Queue队列
     */
    @Bean
    public Queue smsCodeQueue() {
        return new Queue(RabbitQueue.SMS_CODE);
    }
}